package com.example.innovate.domain;

import java.util.ArrayList;
import java.util.List;

public class EnterpriseDOExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public EnterpriseDOExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andEnIdIsNull() {
            addCriterion("en_id is null");
            return (Criteria) this;
        }

        public Criteria andEnIdIsNotNull() {
            addCriterion("en_id is not null");
            return (Criteria) this;
        }

        public Criteria andEnIdEqualTo(Integer value) {
            addCriterion("en_id =", value, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdNotEqualTo(Integer value) {
            addCriterion("en_id <>", value, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdGreaterThan(Integer value) {
            addCriterion("en_id >", value, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("en_id >=", value, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdLessThan(Integer value) {
            addCriterion("en_id <", value, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdLessThanOrEqualTo(Integer value) {
            addCriterion("en_id <=", value, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdIn(List<Integer> values) {
            addCriterion("en_id in", values, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdNotIn(List<Integer> values) {
            addCriterion("en_id not in", values, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdBetween(Integer value1, Integer value2) {
            addCriterion("en_id between", value1, value2, "enId");
            return (Criteria) this;
        }

        public Criteria andEnIdNotBetween(Integer value1, Integer value2) {
            addCriterion("en_id not between", value1, value2, "enId");
            return (Criteria) this;
        }

        public Criteria andEnNameIsNull() {
            addCriterion("en_name is null");
            return (Criteria) this;
        }

        public Criteria andEnNameIsNotNull() {
            addCriterion("en_name is not null");
            return (Criteria) this;
        }

        public Criteria andEnNameEqualTo(String value) {
            addCriterion("en_name =", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameNotEqualTo(String value) {
            addCriterion("en_name <>", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameGreaterThan(String value) {
            addCriterion("en_name >", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameGreaterThanOrEqualTo(String value) {
            addCriterion("en_name >=", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameLessThan(String value) {
            addCriterion("en_name <", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameLessThanOrEqualTo(String value) {
            addCriterion("en_name <=", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameLike(String value) {
            addCriterion("en_name like", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameNotLike(String value) {
            addCriterion("en_name not like", value, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameIn(List<String> values) {
            addCriterion("en_name in", values, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameNotIn(List<String> values) {
            addCriterion("en_name not in", values, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameBetween(String value1, String value2) {
            addCriterion("en_name between", value1, value2, "enName");
            return (Criteria) this;
        }

        public Criteria andEnNameNotBetween(String value1, String value2) {
            addCriterion("en_name not between", value1, value2, "enName");
            return (Criteria) this;
        }

        public Criteria andEnTypeIsNull() {
            addCriterion("en_type is null");
            return (Criteria) this;
        }

        public Criteria andEnTypeIsNotNull() {
            addCriterion("en_type is not null");
            return (Criteria) this;
        }

        public Criteria andEnTypeEqualTo(String value) {
            addCriterion("en_type =", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeNotEqualTo(String value) {
            addCriterion("en_type <>", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeGreaterThan(String value) {
            addCriterion("en_type >", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeGreaterThanOrEqualTo(String value) {
            addCriterion("en_type >=", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeLessThan(String value) {
            addCriterion("en_type <", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeLessThanOrEqualTo(String value) {
            addCriterion("en_type <=", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeLike(String value) {
            addCriterion("en_type like", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeNotLike(String value) {
            addCriterion("en_type not like", value, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeIn(List<String> values) {
            addCriterion("en_type in", values, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeNotIn(List<String> values) {
            addCriterion("en_type not in", values, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeBetween(String value1, String value2) {
            addCriterion("en_type between", value1, value2, "enType");
            return (Criteria) this;
        }

        public Criteria andEnTypeNotBetween(String value1, String value2) {
            addCriterion("en_type not between", value1, value2, "enType");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceIsNull() {
            addCriterion("en_introduce is null");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceIsNotNull() {
            addCriterion("en_introduce is not null");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceEqualTo(String value) {
            addCriterion("en_introduce =", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceNotEqualTo(String value) {
            addCriterion("en_introduce <>", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceGreaterThan(String value) {
            addCriterion("en_introduce >", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceGreaterThanOrEqualTo(String value) {
            addCriterion("en_introduce >=", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceLessThan(String value) {
            addCriterion("en_introduce <", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceLessThanOrEqualTo(String value) {
            addCriterion("en_introduce <=", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceLike(String value) {
            addCriterion("en_introduce like", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceNotLike(String value) {
            addCriterion("en_introduce not like", value, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceIn(List<String> values) {
            addCriterion("en_introduce in", values, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceNotIn(List<String> values) {
            addCriterion("en_introduce not in", values, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceBetween(String value1, String value2) {
            addCriterion("en_introduce between", value1, value2, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnIntroduceNotBetween(String value1, String value2) {
            addCriterion("en_introduce not between", value1, value2, "enIntroduce");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressIsNull() {
            addCriterion("en_video_address is null");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressIsNotNull() {
            addCriterion("en_video_address is not null");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressEqualTo(String value) {
            addCriterion("en_video_address =", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressNotEqualTo(String value) {
            addCriterion("en_video_address <>", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressGreaterThan(String value) {
            addCriterion("en_video_address >", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressGreaterThanOrEqualTo(String value) {
            addCriterion("en_video_address >=", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressLessThan(String value) {
            addCriterion("en_video_address <", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressLessThanOrEqualTo(String value) {
            addCriterion("en_video_address <=", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressLike(String value) {
            addCriterion("en_video_address like", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressNotLike(String value) {
            addCriterion("en_video_address not like", value, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressIn(List<String> values) {
            addCriterion("en_video_address in", values, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressNotIn(List<String> values) {
            addCriterion("en_video_address not in", values, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressBetween(String value1, String value2) {
            addCriterion("en_video_address between", value1, value2, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnVideoAddressNotBetween(String value1, String value2) {
            addCriterion("en_video_address not between", value1, value2, "enVideoAddress");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeIsNull() {
            addCriterion("en_qr_code is null");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeIsNotNull() {
            addCriterion("en_qr_code is not null");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeEqualTo(String value) {
            addCriterion("en_qr_code =", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeNotEqualTo(String value) {
            addCriterion("en_qr_code <>", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeGreaterThan(String value) {
            addCriterion("en_qr_code >", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeGreaterThanOrEqualTo(String value) {
            addCriterion("en_qr_code >=", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeLessThan(String value) {
            addCriterion("en_qr_code <", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeLessThanOrEqualTo(String value) {
            addCriterion("en_qr_code <=", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeLike(String value) {
            addCriterion("en_qr_code like", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeNotLike(String value) {
            addCriterion("en_qr_code not like", value, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeIn(List<String> values) {
            addCriterion("en_qr_code in", values, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeNotIn(List<String> values) {
            addCriterion("en_qr_code not in", values, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeBetween(String value1, String value2) {
            addCriterion("en_qr_code between", value1, value2, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnQrCodeNotBetween(String value1, String value2) {
            addCriterion("en_qr_code not between", value1, value2, "enQrCode");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesIsNull() {
            addCriterion("en_products_and_services is null");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesIsNotNull() {
            addCriterion("en_products_and_services is not null");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesEqualTo(String value) {
            addCriterion("en_products_and_services =", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesNotEqualTo(String value) {
            addCriterion("en_products_and_services <>", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesGreaterThan(String value) {
            addCriterion("en_products_and_services >", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesGreaterThanOrEqualTo(String value) {
            addCriterion("en_products_and_services >=", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesLessThan(String value) {
            addCriterion("en_products_and_services <", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesLessThanOrEqualTo(String value) {
            addCriterion("en_products_and_services <=", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesLike(String value) {
            addCriterion("en_products_and_services like", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesNotLike(String value) {
            addCriterion("en_products_and_services not like", value, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesIn(List<String> values) {
            addCriterion("en_products_and_services in", values, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesNotIn(List<String> values) {
            addCriterion("en_products_and_services not in", values, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesBetween(String value1, String value2) {
            addCriterion("en_products_and_services between", value1, value2, "enProductsAndServices");
            return (Criteria) this;
        }

        public Criteria andEnProductsAndServicesNotBetween(String value1, String value2) {
            addCriterion("en_products_and_services not between", value1, value2, "enProductsAndServices");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}